package com.azt.provider.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.azt.api.dto.CompanyAddDto;
import com.azt.api.dto.CompanyStatusDto;
import com.azt.api.dto.PvDataDto;
import com.azt.api.dto.UserAddDto;
import com.azt.api.dto.UvDataDto;

/**
 * Created by zouheyuan on 2017/4/14.
 */
public interface UserMapper {

    /**
     * 当前注册用户总数
     * @return
     */
    int selectUserNum();

    /**
     * 当前认证企业总数
     * @return
     */
    int selectCetCustNum();

    /**
     * 当前集采供应商
     * @return
     */
    int selectCenMemberNum();

    /**
     * 当前签约采购商总数
     * @return
     */
    int selectSignNum();

    /**
     * 当前平安签约总数
     * @return
     */
    int selectPinganAccount();

    /**
     * 每月增长用户  转化率  增长率
     * @return
     */
    List<UserAddDto> selectAddUserData(@Param("startDate") String startDate , @Param("endDate") String endDate);

    /**
     * 每月增长用户及企业
     * @param startDate
     * @param endDate
     * @return
     */
    List<Map<String, Object>> selectAddUserAndCompany(@Param("startDate") String startDate , @Param("endDate") String endDate);

    /**
     * 每月增长企业及增长率
     * @param startDate
     * @param endDate
     * @return
     */
    List<CompanyAddDto> selectCompanyData(@Param("startDate") String startDate , @Param("endDate") String endDate);

    /**
     * 每月认证供应商&采购商&采供双重身份用户数量
     * @param startDate
     * @param endDate
     * @return
     */
    List<CompanyStatusDto> selectCerDatas(@Param("startDate") String startDate , @Param("endDate") String endDate);


    /**
     * 获取日PV
     * @param startDate
     * @param endDate
     * @return
     */
    List<PvDataDto> selectDayPV(@Param("startDate") String startDate , @Param("endDate") String endDate);

    /**
     * 新PV  将不同类型的pv分开显示
     * @param startDate
     * @param endDate
     * @return
     */
    List<Map<String , Object>> selectDayPVNew(@Param("startDate") String startDate , @Param("endDate") String endDate);

    /**
     * 新UV
     * @param startDate
     * @param endDate
     * @return
     */
    List<Map<String , Object>> selectDayUVNew(@Param("startDate") String startDate , @Param("endDate") String endDate);

    /**
     * 获取日UV
     * @param startDate
     * @param endDate
     * @return
     */
    List<UvDataDto> selectDayUV(@Param("startDate") String startDate , @Param("endDate") String endDate);

    /**
     * 活跃用户top5
     * @return
     */
    List<Map<String, Object>> selectHotTop5();


    /**
     * @Title: selectUserList
     * @Description: 用户明细列表
     * @return
     * @return: List<Map<String,Object>>
     * @author: 查恒 2017年4月19日 下午1:16:04
     */
    List<Map<String, Object>> selectUserList(Map<String, String> searchMap);

    /**
     * 采购商  供应商  及  双重身份 占比
     * @return
     */
    List<Map<String , Object>> selectCompanyPro();


    /**
     * 当前各品类供应商数量占比
     * @return
     */
    List<Map<String , Object>> selectCategoryCompany();

    /**
     * 全国企业分布数据
     * @return
     */
    List<Map<String , Object>> selectChinaMapForCompany();

    /**
     * 发布询价数量top10
     * @return
     */
    List<Map<String , Object>> selectEnquiryTop10();


    /**
     * 采购金额top10
     * @return
     */
    List<Map<String , Object>> selectBuyPriceTop10();


    /**
     * 发布商品top10
     * @return
     */
    List<Map<String , Object>> selectPublishProductTop10();




	/**
	 * @Title: selectUserCompanyPreMonth
	 * @Description: 企业统计
	 * @return
	 * @return: List<Map<String,Object>>
	 * @author: 查恒 2017年4月20日 上午9:39:35
	 */
	List<Map<String, Object>> selectUserCompanyPerMonth(Map<String, String> searchMap);

	/** 
	 * @Title: selectUserLogRecord 
	 * @Description: 用户登录记录
	 * @return
	 * @return: List<Map<String,Object>>
	 * @author: 查恒 2017年4月20日 下午4:05:14 
	 */
	List<Map<String, Object>> selectUserLogRecord(Map<String, String> searchMap);

    /**
     * 获取系统
     * @return
     */
    List<Map<String, Object>> selectCategroys();

    /**
     * 采购商询价排名列表数据
     * @return
     */
    List<Map<String, Object>> selectEnquiryCompany(Map params);


    /**
     * 活跃用户列表
     * @param params
     * @return
     */
    List<Map<String, Object>> selectHot(Map params);

    /**
     * 采购商交易排行榜
     * @param params
     * @return
     */
    List<Map<String, Object>> selectBuyPriceTop(Map params);

	/** 
	 * @Title: selectHotUserDetail 
	 * @Description: 查询活跃用户详情
	 * @param searchMap
	 * @return
	 * @return: List<Map<String,Object>>
	 * @author: 查恒 2017年6月1日 下午1:25:01 
	 */
	List<Map<String, Object>> selectHotUserDetail(Map params);

	/** 
	 * @Title: selectPingAnEb 
	 * @Description: 平安E宝用户
	 * @param params
	 * @return
	 * @return: List<Map<String,Object>>
	 * @author: 查恒 2017年6月13日 上午9:15:00 
	 */
	List<Map<String, Object>> selectPingAnEb(Map params);


}
